library(plotly)
Loading required package: ggplot2
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     
Registered S3 methods overwritten by 'htmltools':
  method               from         
  print.html           tools:rstudio
  print.shiny.tag      tools:rstudio
  print.shiny.tag.list tools:rstudio
Registered S3 method overwritten by 'htmlwidgets':
  method           from         
  print.htmlwidget tools:rstudio

Attaching package: ‘plotly’

The following object is masked from ‘package:ggplot2’:

    last_plot

The following object is masked from ‘package:stats’:

    filter

The following object is masked from ‘package:graphics’:

    layout
library(ggplot2)
library(readr)
library(dplyr)

Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union
df <- read.csv('european_pop_gdp_per_capita.csv')
head(df)


 
plt <- ggplot(df, aes(x=population, y=gdp_per_capita)) + geom_point(aes(color=Country)) 

plt


pointsToLabel <- c("Austria", "Belgium", "Bulgaria", "Estonia", "France", "Germany", "Italy", "Netherlands", "Spain", "United Kingdom")

#plt2 <- plt + geom_text(aes(label = Country), color = "gray20", fontface='bold', data = subset(df, Country %in% pointsToLabel),check_overlap = TRUE)
plt2 <- plt + geom_text(aes(label = Country), color = "gray20", fontface='bold',check_overlap = TRUE)
plt2



plt3 <- plt2 + scale_x_continuous(name='Population', limits = c(0,90000000))
ggplotly(plt3)

Ok, so this looks pretty scrunched up, and it’s not a particularly useful graph (as I never really thought there was a relationship between population and GDP per capita). But it let me practise using some ggplot2 and plotly features, so it was a useful learning experience.

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQogCgpgYGB7cn0KbGlicmFyeShwbG90bHkpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShyZWFkcikKbGlicmFyeShkcGx5cikKCmRmIDwtIHJlYWQuY3N2KCdldXJvcGVhbl9wb3BfZ2RwX3Blcl9jYXBpdGEuY3N2JykKaGVhZChkZikKYGBgCgojIyAKYGBge3IsIGZpZy53aWR0aD0gOS41LCBmaWcuaGVpZ2h0PTZ9CgogCnBsdCA8LSBnZ3Bsb3QoZGYsIGFlcyh4PXBvcHVsYXRpb24sIHk9Z2RwX3Blcl9jYXBpdGEpKSArIGdlb21fcG9pbnQoYWVzKGNvbG9yPUNvdW50cnkpKSAKCnBsdApgYGAKCiAKYGBge3IsIGZpZy53aWR0aD0gMTEsIGZpZy5oZWlnaHQ9Nn0KCnBvaW50c1RvTGFiZWwgPC0gYygiQXVzdHJpYSIsICJCZWxnaXVtIiwgIkJ1bGdhcmlhIiwgIkVzdG9uaWEiLCAiRnJhbmNlIiwgIkdlcm1hbnkiLCAiSXRhbHkiLCAiTmV0aGVybGFuZHMiLCAiU3BhaW4iLCAiVW5pdGVkIEtpbmdkb20iKQoKI3BsdDIgPC0gcGx0ICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IENvdW50cnkpLCBjb2xvciA9ICJncmF5MjAiLCBmb250ZmFjZT0nYm9sZCcsIGRhdGEgPSBzdWJzZXQoZGYsIENvdW50cnkgJWluJSBwb2ludHNUb0xhYmVsKSxjaGVja19vdmVybGFwID0gVFJVRSkKcGx0MiA8LSBwbHQgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gQ291bnRyeSksIGNvbG9yID0gImdyYXkyMCIsIGZvbnRmYWNlPSdib2xkJyxjaGVja19vdmVybGFwID0gVFJVRSkKcGx0MgoKYGBgCgpgYGB7ciwgZmlnLndpZHRoPSAxMSwgZmlnLmhlaWdodD02fQoKCnBsdDMgPC0gcGx0MiArIHNjYWxlX3hfY29udGludW91cyhuYW1lPSdQb3B1bGF0aW9uJywgbGltaXRzID0gYygwLDkwMDAwMDAwKSkKZ2dwbG90bHkocGx0MykKYGBgCk9rLCBzbyB0aGlzIGxvb2tzIHByZXR0eSBzY3J1bmNoZWQgdXAsIGFuZCBpdCdzIG5vdCBhIHBhcnRpY3VsYXJseSB1c2VmdWwgZ3JhcGggKGFzIEkgbmV2ZXIgcmVhbGx5IHRob3VnaHQgdGhlcmUgd2FzIGEgcmVsYXRpb25zaGlwIGJldHdlZW4gcG9wdWxhdGlvbiBhbmQgR0RQIHBlciBjYXBpdGEpLiBCdXQgaXQgbGV0IG1lIHByYWN0aXNlIHVzaW5nIHNvbWUgZ2dwbG90MiBhbmQgcGxvdGx5IGZlYXR1cmVzLCBzbyBpdCB3YXMgYSB1c2VmdWwgbGVhcm5pbmcgZXhwZXJpZW5jZS4K